#include<cstdio>
#include<cstring>

const int maxm=100005;
const int maxn=2000005;

char p[maxm],t[maxn];
int next[maxm],n,m,cas,ans;

void make_next()
{
	m=strlen(p+1);
	int k=0;
	next[0]=0;
	for(int i=2;i<=m;i++)
	{
		while(k>0&&p[k+1]!=p[i])
			k=next[k];
		if(p[k+1]==p[i])k++;
		next[i]=k;
	}
}

void match()
{
	int q=0;
	ans=false;
	n=strlen(t+1);
	for(int i=n+1;i<=2*n;i++)
		t[i]=t[i-n];
	t[2*n+1]='\0';
	make_next();
	for(int i=1;i<=2*n;i++)
	{
		while(q>0&&p[q+1]!=t[i])
			q=next[q];
		if(p[q+1]==t[i])q++;
		if(q==m)
		{
			ans=true;
			break;
		}
	}
	if(ans)printf("yes\n");
	else printf("no\n");
}
int main()
{
	while(scanf("%s",t+1)!=EOF)
	{
		scanf("%s",p+1);
		match();
	}
	return 0;
}
